package day06;

/**
 * @author Huangjin
 * @version 1.0
 * describe:方法的演示
 * @date 2023/2/17 11:39
 */
public class MethodDemo {
    public static void main(String[] args) {
        say();
        sayHi("Mara");
        sayHello("Jack", 9);
        //getNum()的值就是return后的那个数
        double num = getNum();
        //8.88---模拟对返回值的后续操作
        System.out.println(num);
        int num1 = plus(5, 4);
        System.out.println(num1);
        int m = 12,n = 24;
        int x = plus(m,n);
        System.out.println(x);

        int[] e = testArray(30,100);
        System.out.println("数组的长度为："+e.length);
        for (int i:e){
            System.out.print(i+"\t");
        }

        int[] f = testArray(20,10);
        System.out.println();
        System.out.println("数组的第1一个元素为："+e[0]);
        System.out.println(e[0]);
        for (int i:f){
            System.out.print(i+"\t");
        }

        speak(10);

        aMethod();
        System.out.println(444);
    }

    /**
     * 无参无返回值
     */
    public static void say() {
        System.out.println("大家好，我叫威整天，为了一整天");
    }

    /**
     * 有参无返回值
     */
    public static void sayHi(String name) {
        System.out.println("大家好，我叫" + name + ",今年是兔年");
    }

    public static void sayHello(String name, int age) {
        System.out.println("大家好，我叫" + name + ",今年" + age + "岁了");
    }

    /**
     * 有参无返回值
     */
    public static double getNum() {
        //在有返回值的方法中，必须通过return来返回数据。
        // return后的数据必须与返回值类型匹配。
        //①结束方法的执行，②并返回一个结果给调用方法。
        return 8.88;
    }

    /**
     * 有参有返回值
     */
    public static int plus(int a, int b) {
        return a + b;
    }
    /**
     * 无参有返回值
     */
    public static int[] testArray(int len,int max){
        int[] arr = new int[len];
        for (int i = 0; i < arr.length; i++) {
            arr[i] = (int)(Math.random()*(max+1));
        }
        return arr;
    }

    /**
     * return的另一个用法
     */
    public static void speak(int age){
        System.out.println();
        //在某种特定条件下提前结束方法的执行
        if (age>20){
            //结束方法的执行
            return;
        }
        System.out.println("Hello!!!");
    }

    /**
     * 嵌套调用
     */
    public static void aMethod(){
        System.out.println(111);
        bMethod();
        System.out.println(2222);
    }
    public static void bMethod(){
        System.out.println(333);
    }
}